<!doctype html>
<html>
	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

		<title>reveal.js</title>

		<link rel="stylesheet" href="dist/reset.css">
		<link rel="stylesheet" href="dist/reveal.css">
		<link rel="stylesheet" href="dist/theme/marvin.css">

		<!-- Theme used for syntax highlighted code -->
		<link rel="stylesheet" href="plugin/highlight/monokai.css">

		<style>

      .list > li {
        font-size: 80%;
        margin: 20px;
      }

			.paper {
				box-sizing: border-box;
				border: 0.5px solid gray;
				width:  510.5px;
				height: 600.5px;
				background-size: 30px 30px;
				background-image:
					linear-gradient(to right, grey 0.5px, transparent 0.5px),
					linear-gradient(to bottom, grey 0.5px, transparent 0.5px);
			}

			.curve {
				position: absolute;
				box-sizing: border-box;

				top: 80px;
				width: 410.5px;
				height: 550.5px;
				border-top-right-radius: 410.5px 550.5px;
				border-top:   1px solid crimson;
				border-right: 1px solid crimson;
			}
		</style>
	</head>
	<body>
		<div class="reveal">
			<div class="slides">

				<section>
					<h2>手写数字识别</h2>
					<div class="sub-title">Handwriting Digit Recognition</div>
				</section>

				<section data-auto-animate>
          <div data-id="title">回顾：应用机器学习技术的一般过程</div>
          <ul class="list">
            <li>采集原始数据</li>
            <li>处理成<b>规则的</b>数据</li>
            <li>选择合适的模型（线性分类器？决策树？神经网络？）</li>
            <li>训练模型</li>
            <li>使用模型（推理）</li>
          </ul>
        </section>

        <section data-auto-animate>
          <div data-id="title">手写数字识别</div>
          <div>MNIST是一套标准的训练模型的数据集，包含了大量经过标注的人类手写数字的图像。我们用MNIST训练一个模型，实现对手写数字图像进行辨认。</div>
        </section>

        <section data-auto-animate>
          <div data-id="title">手写数字识别</div>
          <div>        TensorFlow (TF) 是一个模型框架，通过TF我们可以搭建用于实现某些任务的神经网络模型。在本实验中，我们将完成一遍基于TF的神经网络模型的训练过程。
          </div>
        </section>

          
        <section data-auto-animate>
          <div data-id="title">开始操作！</div>
          <pre><code data-trim data-noescape>
            $ git clone https://gitee.com/marvintau/tensorflow-mnist-opencv-demo
          </code></pre>
        </section>

        <section data-auto-animate>
          <div data-id="title">训练模型</div>
          <pre><code data-trim data-noescape>
            $ cd tensorflow-mnist-opencv-demo
            $ mkdir model
            $ python model.py
          </code></pre>
        </section>


        <section data-auto-animate>
          <div data-id="title">模型转换（PB -> UFF）</div>
          <pre><code data-trim data-noescape>
            $ python /usr/lib/python2.7/dist-packages/uff/bin/convert_to_uff.py --input_file models/lenet5.pb 
          </code></pre>
        </section>


        <section data-auto-animate>
          <div data-id="title">测试</div>
          <pre><code data-trim data-noescape>
            $ python sample.py
          </code></pre>
        </section>

        <section data-auto-animate>
          <div data-id="title">挑战来了！</div>
          <div>请实现一个程序，能够运用上述训练完成的模型，通过连接在Jetson Nano上的USB摄像头，读取您自己手写的数字并输出识别结果。</div>
        </section>


        <section data-auto-animate>
          <div data-id="title">Hints:</div>
          <ul class='list'>
            <li>在我们上一次实验中，其实已经包含了接受摄像头输入的代码，是供你参考的重要资料。</li>
            <li>你要做的事情可能包括：</li>
            <ul class='list'>
            <li>能够在屏幕上看到摄像头的视野（像我们上次实验一样）</li>
            <li>能够截取一个图片</li>
            <li>对这个图片进行处理，比如把彩色变为黑白，对图片进行缩放</li>
            </ul>
            <li>无论是对图像的处理，还是和摄像头有关的操作，都和一个叫做OpenCV的软件库有关。<b>请善用搜索引擎。</b></li>
            <li>老师仍然会为你解答各种问题，<b>请善于利用老师。</b></li>
          </ul>

        </section>
        
      </div>
		</div>

    <script src="dist/reveal.js"></script>
		<script src="plugin/notes/notes.js"></script>
		<script src="plugin/markdown/markdown.js"></script>
		<script src="plugin/highlight/highlight.js"></script>

    <script>
      Reveal.initialize({
				hash: true,

				// Learn about plugins: https://revealjs.com/plugins/
				plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ]
			})
    </script>

  </body>
</html>